home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-09-08 | 1.4 KB | 75 lines | [TEXT/PJMM] |
- unit MyVersionResource;
-
- interface
-
- {$IFC undefined THINK_Pascal}
- uses
- Types;
- {$ENDC}
-
- type
- versionRecord = packed record
- version: integer;
- devcode: byte;
- revision: byte;
- country: integer;
- short: str15;
- long: str255;
- name: str63;
- end;
-
- procedure GetVersion (var vers: versionRecord);
- procedure SetVersionParamText (c3: str255);
-
- implementation
-
- uses
- {$IFC undefined THINK_Pascal}
- Resources, Memory, Dialogs,
- {$ENDC}
- MyStrings;
-
- procedure GetVersion (var vers: versionRecord);
- var
- vh: handle;
- p: integer;
- begin
- with vers do begin
- vh := GetResource('vers', 1);
- if vh = nil then begin
- version := $0000;
- devcode := $20;
- revision := $00;
- country := 0;
- short := '0.0.0';
- long := 'Unknown v0.0.0';
- end
- else begin
- BlockMove(vh^, @vers, sizeof(vers));
- BlockMove(Ptr(longint(vh^) + (longint(@short) - longint(@vers)) + length(short) + 1), @long, sizeof(long));
- if length(short) >= sizeof(short) then
- {$PUSH}
- {$R-}
- short[0] := chr(sizeof(short) - 1);
- {$POP}
- ReleaseResource(vh);
- end;
- p := pos(short, long);
- while (p > 0) & (vers.long[p] <> ' ') do
- p := p - 1;
- p := p - 1;
- if p < 1 then
- p := 255;
- name := TPcopy(vers.long, 1, p);
- end;
- end;
-
- procedure SetVersionParamText (c3: str255);
- var
- vers: versionRecord;
- begin
- GetVersion(vers);
- ParamText(vers.short, vers.long, vers.name, c3);
- end;
-
- end.